var Material = new Ext.extend(Ext.Panel, {
	border : false,
	layout : 'fit',
	initComponent : function() {
		this.initGrid();
		this.items = [this.grid];
		Material.superclass.initComponent.call(this);
	},
	addOrUpdate : function(isAdd) {
		var me = this;
		if (this.win) {
			this.win.close();
		}
		var rec = this.grid.getRecord();
		if (!isAdd) {
			if (!rec) {
				TopMy.alert('请选择要修改的记录！');
				return;
			}
		}
		this.form = new TopExt.FormPanel({
					border : false,
					autoScroll : true,
					padding : 5,
					defaults : {
						xtype : 'textfield',
						anchor : '100%'
					},
					labelWidth : 70,
					labelAlign : 'right',
					items : [{
								xtype : 'hidden',
								name : 'material_id'
							}, {
								name : 'material_code',
								fieldLabel : '材料编码',
								allowBlank : false
							}, {
								name : 'material_name',
								fieldLabel : '材料名称',
								allowBlank : false
							}, {
								name : 'unit',
								fieldLabel : '单&emsp;&emsp;位',
								allowBlank : false
							}, {
								xtype : 'numberfield',
								name : 'price',
								fieldLabel : '单&emsp;&emsp;价'
							}, {
								xtype : 'textarea',
								name : 'remark',
								fieldLabel : '备&emsp;&emsp;注'
							}],
					listeners : {
						afterrender : function(t) {
							if (!isAdd) {
								t.getForm().loadRecord(rec);
							}
						}
					}
				});
		this.win = new TopExt.Window({
					title : isAdd ? '新增材料信息' : '更新材料信息',
					width : 380,
					autoHeight : true,
					modal : true,
					items : [this.form],
					buttons : [{
								text : '保存',
								iconCls : 'icon-save',
								handler : function() {
									var url = My.url('/jxc/material/add.do');
									if (!isAdd) {
										url = My.url('/jxc/material/update.do');
									}
									TopMy.submit(me.form, {
												url : url,
												successCallback : function() {
													me.win.close();
													me.grid.getStore().reload();
												}
											});
								}
							}, {
								text : '取消',
								iconCls : 'icon-cancel',
								handler : function() {
									me.win.close();
								}
							}]
				});
		this.win.show();
		return this.form;
	},
	initGrid : function() {
		var me = this;
		var store = new Ext.data.JsonStore({
					fields : ['material_id', 'material_code', 'material_name',
							'price', 'color', 'unit', 'maker', 'remark'],
					url : My.url('/jxc/material/getMaterialList.do'),
					root : 'data',
					autoLoad : true
				});
		this.grid = new Ext.grid.EditorGridPanel({
			region : 'center',
			boxMinWidth : 480,
			loadMask : true,
			getRecord : function() {
				return me.grid.getSelectionModel().getSelected();
			},
			store : store,
			viewConfig : {
				forceFit : true
			},
			sm : new Ext.grid.RowSelectionModel({
						listeners : {
							rowselect : function(t, i, r) {
								var sdbar = me.grid.getTopToolbar()
										.getComponent('set_disabled');
								var disabled = r.data.disabled;
								if (disabled == '1') {
									sdbar.setText('删除');
									sdbar.setIconClass('icon-enabled');
								} else {
									sdbar.setText('禁用');
									sdbar.setIconClass('icon-disabled');
								}
								// 加载角色
								var rec = me.grid.getStore().getAt(i);
								var is = me.rs.getItemSelector();
								var leftStore = is.multiselects[0].store;
								var rightStore = is.multiselects[1].store;
								leftStore.baseParams.userid = rec.data.userid;
								rightStore.baseParams.userid = rec.data.userid;
								leftStore.load();
								rightStore.load();
							}
						}
					}),
			cm : new Ext.grid.ColumnModel({
						defaults : {
							align : 'center'
						},
						columns : [{
									dataIndex : 'material_code',
									header : '材料编码',
									width : 150
								}, {
									dataIndex : 'material_name',
									header : '材料名称'
								}, {
									dataIndex : 'unit',
									header : '单位'
								}, {
									dataIndex : 'price',
									header : '单价',
									renderer : function(v, m, r) {
										v = Ext.util.Format.number(v, '0,0.00');
										m.attr = "style='text-align:right;'";
										return v;
									}
								}, {
									dataIndex : 'remark',
									header : '备注'
								}]
					}),
			bodyStyle : 'border-left:0;border-bottom:0;',
			tbar : new Ext.Toolbar({
						style : 'border-left:0;border-top:0;',
						items : [{
									text : '新增',
									iconCls : 'icon-add',
									handler : function() {
										me.addOrUpdate(true);
									}
								}, {
									text : '修改',
									iconCls : 'icon-update',
									handler : function() {
										me.addOrUpdate();
									}
								}, {
									text : '删除',
									iconCls : 'icon-delete',
									handler : function() {
										me.dele();
									}
								}, '-', {
									xtype : 'searchfield',
									name : 'material_name',
									store : store
								}]
					}),
			listeners : {
				rowclick : function(g, i, e) {
				}
			}
		});
	},
	setDisabled : function(disabled, sbbar) {
		var me = this;
		var rec = me.grid.getRecord();
		if (disabled) {
			if (!rec) {
				My.alert('请选择要禁用的材料信息！');
				return;
			}
			My.confirm('确定要禁用该材料吗？', function(btn) {
						if (btn == 'no') {
							return;
						}
						My.request({
									url : My
											.url('/jxc/material/setDisabled.do'),
									params : {
										userid : rec.data.userid,
										disabled : '1'
									},
									successCallback : function() {
										sbbar.setText('启用');
										sbbar.setIconClass('icon-enabled');
										me.grid.getStore().reload();
									}
								});
					});
		} else {
			if (!rec) {
				My.alert('请选择要启用的材料信息！');
				return;
			}
			My.request({
						url : My.url('/jxc/material/setDisabled.do'),
						params : {
							userid : rec.data.userid,
							disabled : '0'
						},
						successCallback : function() {
							sbbar.setText('禁用');
							sbbar.setIconClass('icon-disabled');
							me.grid.getStore().reload();
						}
					});
		}
	},
	dele : function() {
		var me = this;
		var rec = me.grid.getRecord();
		if (!rec) {
			My.alert('请选择要删除的材料信息 ！');
			return;
		}
		My.confirm('确定要删除该材料信息吗？', function(btn) {
					if (btn == 'no') {
						return;
					}
					My.request({
								url : My.url('/jxc/material/delete.do'),
								params : {
									material_id : rec.data.material_id
								},
								successCallback : function() {
									me.grid.getStore().reload();
								}
							});
				});
	}
});

Ext.onReady(function() {
			new Ext.Viewport({
						layout : 'fit',
						items : [new Material()]
					});
		});